﻿#pragma once

#if defined(_MSC_VER)
	#define _CRT_SECURE_NO_WARNINGS
#endif


#if defined(WIN32) // MSVC 的 win32 平台宏
	#error "x64 only for now Win32 is not supported"
#endif


// openCV 链接库与头文件
#if defined(NDEBUG) || defined(RELESE)   // Release 模式
#define MY_RELESE_MODE 1
#define MY_DEBUG_MODE 0
	#pragma comment(lib, "ReleaseLib/lib/opencv_aruco4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_bgsegm4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_bioinspired4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_calib3d4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_ccalib4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_core4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_datasets4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_dnn_objdetect4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_dnn_superres4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_dnn4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_dpm4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_face4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_features2d4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_flann4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_fuzzy4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_gapi4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_hfs4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_highgui4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_img_hash4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_imgcodecs4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_imgproc4130.lib")
	#pragma comment(lib, "ReleaseLib/lib/opencv_intensity_transform4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_line_descriptor4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_mcc4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_ml4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_objdetect4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_optflow4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_phase_unwrapping4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_photo4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_plot4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_quality4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_rapid4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_reg4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_rgbd4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_saliency4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_shape4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_signal4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_stereo4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_stitching4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_structured_light4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_superres4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_surface_matching4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_text4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_tracking4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_video4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_videoio4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_videostab4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_wechat_qrcode4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_xfeatures2d4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_ximgproc4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_xobjdetect4130.lib")
#pragma comment(lib, "ReleaseLib/lib/opencv_xphoto4130.lib")
#elif defined(_DEBUG) || defined(DEBUG)  // Debug 模式
#define MY_DEBUG_MODE 1
#define MY_RELESE_MODE 0
	#pragma comment(lib, "DebugLib/lib/opencv_aruco4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_bgsegm4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_bioinspired4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_calib3d4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_ccalib4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_core4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_datasets4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_dnn_objdetect4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_dnn_superres4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_dnn4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_dpm4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_face4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_features2d4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_flann4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_fuzzy4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_gapi4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_hfs4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_highgui4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_img_hash4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_imgcodecs4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_imgproc4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_intensity_transform4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_line_descriptor4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_mcc4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_ml4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_objdetect4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_optflow4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_phase_unwrapping4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_photo4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_plot4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_quality4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_rapid4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_reg4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_rgbd4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_saliency4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_shape4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_signal4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_stereo4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_stitching4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_structured_light4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_superres4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_surface_matching4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_text4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_tracking4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_video4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_videoio4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_videostab4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_wechat_qrcode4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_xfeatures2d4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_ximgproc4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_xobjdetect4130d.lib")
	#pragma comment(lib, "DebugLib/lib/opencv_xphoto4130d.lib")
#endif

#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>


// C++头文件
#include <iostream>
//#include <string>
//#include <vector>
#include <fstream>
//#include <sstream>
//#include <locale>
//#include <codecvt>
#include <filesystem>
//#include <algorithm>
//#include <cmath>
//#include <ctime>
//#include <sstream>
//#include <iomanip>
//#include <chrono>


// 宏定义
#define run_in_debug(expr) \
	if (MY_DEBUG_MODE) { \
		expr \
 }



